创建一个模块
php think build --module official

微信公众号 -  接口开发

引入第三方的一个开发微信类
https://www.kancloud.cn/mikkle/thinkphp5_study/447624


1、将扩展类放到 extends目录下面
2、创建一个配置文件
    application\extra\wechat.php
3、自己的开发服务器上面创建一个对接微信的控制器


https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html


申请测试账号
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login


公众号/小程序/企业微信   -> 首次对接 相对来说比较复杂


1、填写服务器配置
    url、token(用来验证消息的安全性)、EncodingAESKey(用来加密和解密)

2、当点击提交之后，微信公众平台，会自动立刻发送一个get请求 到我们的服务器(只能够线上)
    微信加密签名/时间戳/随机数/随机字符串

3、验证过程
    接收 微信签名的参数 并验证签名有效
    如果签名正确 需要返回 echostr 这个参数 返回给微信服务器 则代表验证成功 否则验证失败

    验证签名的过程
        token、timestamp、nonce 接收3个参数
        将三个参数放到数组里面,sort排序(升序) rsort(降序)
        将排序后的数组合并成一个字符串
        将合并后的字符串进行加密 sha1 哈希加密
        将加密的结果 == 微信签名 对比 
        如果一样 签名有效   要返回随机字符串给微信服务器

4、提交代码到线上访问
    要去公众平台设置一些选项
        JS接口安全域名
        OAuth2.0网页授权 授权回调页面域名:


token: ASK

URL:必须是线上的地址
    http://demo.dancefunk.com/official/index/auth


用户发消息 -> 公众号 -> 接收消息 -> 将消息转接给(微信服务器) -> XML/JSON  -> 开发者服务器


首次关注
    开发者将信息先组装好 -> 将信息发送微信服务器 -> 微信服务器将信息转发 -> 微信用户


